import Vue from 'vue'

// 首字母大写
const firstCapital = (str) => {
    return str.charAt(0).toUpperCase() + str.slice(1)
}

// 普通全局组件
const commonComponent = require.context('./common', false, /\.vue$/)
// 全局解析组件
const parseComponent = require.context('./parse', false, /\.vue$/)
// 全局属性设置组件
const attrSetComponent = require.context('./setAttr', false, /\.vue$/)

// 全局组件集合
const componentsList = [commonComponent, parseComponent, attrSetComponent]

// 开始注册全局组件
for (let i of componentsList) {
    i.keys().forEach(fileName => {
        const config = i(fileName)
        const componentName = firstCapital(
            fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')   // ./child1.vue => child1
        )
        Vue.component(componentName, config.default || config) // 动态注册该目录下的所有.vue文件
    })
}